單例是設計模式的其中一種~ 它讓程式在同一時間~ 只會有一個實例化的物件~
設計的思維很簡單~ 就是先用private~去保護類別~ 然後在寫一個生成類別的方法~
學習目標: Singleton的概念及實務
學習難度: ☆☆☆
using System;
namespace ConsoleApp1
{
public class Singleton
{
public int value = 100;
private Singleton() //保護Singleton
{
}
private static Singleton singleton;
public static Singleton GetInstance() //生成Singleton類別的方法~
{
if (singleton == null) //如果沒生成過,就生成
{
singleton = new Singleton();
}
return singleton; //反之回傳singleton
}
}
class MainProgram
{
static void Main()
{
Singleton singleton1 = Singleton.GetInstance();
Singleton singleton2 = Singleton.GetInstance();
singleton2.value = 200;
//注意~ singleton1會被singleton2.value所影響
}
}
}
參考資料:
https://stackoverflow.com/questions/2155688/what-is-a-singleton-in-c
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy = new Lazy<Singleton>();
private Singleton() { }
public static Singleton Instance => lazy.Value;
}
感覺這樣寫也不錯~ 謝謝您的回覆~